#pragma once 
#pragma warning( disable: 4251 ) 

#ifdef WGLENGINE_DLL
#define WGLENGINE_EXPORT __declspec(dllexport)
#else
#define WGLENGINE_EXPORT __declspec(dllimport)
#endif

#include "glm\glm.hpp"
#include "glm\gtc\quaternion.hpp"

class WGLENGINE_EXPORT Transform 
{
public:
	Transform();
	~Transform();

	void Translate(glm::vec3 vec);
	void Rotate(float roll, float pitch, float yaw);

	glm::vec3 GetRight(){return right;}
	glm::vec3 GetForward(){return forward;}
	glm::vec3 GetUp(){return up;}

	void SetModelMatrix(glm::mat4 matrix);
	glm::mat4 GetModelMatrix();

private:
	glm::mat4 modelMatrix;	

	glm::vec3 forward;
	glm::vec3 right;
	glm::vec3 up;

	float roll;
	float pitch;
	float yaw;

};